package com.ocean.product.service.impl;

import java.util.ArrayList;
import java.util.List;

import com.ocean.common.utils.StringUtils;
import com.ocean.system.domain.OProductDept;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ocean.product.mapper.OProductDeptMapper;
import com.ocean.product.service.IOProductDeptService;
import com.ocean.common.core.text.Convert;

/**
 * 产品组织中间Service业务层处理
 *
 * @author ocean
 * @date 2023-02-01
 */
@Service
public class OProductDeptServiceImpl implements IOProductDeptService
{
    @Autowired
    private OProductDeptMapper oProductDeptMapper;

    /**
     * 查询产品组织中间
     *
     * @param productId 产品组织中间主键
     * @return 产品组织中间
     */
    @Override
    public List<OProductDept> selectOProductDeptByProductId(String productId)
    {
        return oProductDeptMapper.selectOProductDeptByProductId(productId);
    }

    /**
     * 查询产品组织中间列表
     *
     * @param oProductDept 产品组织中间
     * @return 产品组织中间
     */
    @Override
    public List<OProductDept> selectOProductDeptList(OProductDept oProductDept)
    {
        return oProductDeptMapper.selectOProductDeptList(oProductDept);
    }

    /**
     * 新增产品组织中间
     *
     * @param oProductDept 产品组织中间
     * @return 结果
     */
    @Override
    public int insertOProductDept(OProductDept oProductDept)
    {
        return oProductDeptMapper.insertOProductDept(oProductDept);
    }
    /**
     * 新增产品组织中间
     *
     * @param productId 产品id
     * @param deptIds 组织id字符串(,分隔)
     * @return 结果
     */
    @Override
    public int insertOProductDept(String productId,String deptIds)
    {
        List<OProductDept> list = new ArrayList<>();
        if (StringUtils.isNotEmpty(deptIds)) {
            String[] ids = Convert.toStrArray(deptIds);
            for (String id : ids) {
                OProductDept productDept = new OProductDept();
                productDept.setDeptId(id);productDept.setProductId(productId);
                list.add(productDept);
            }
        return oProductDeptMapper.insertOProductDeptList(list);
        }
        return 1;
    }

    /**
     * 修改产品组织中间
     *
     * @param oProductDept 产品组织中间
     * @return 结果
     */
    @Override
    public int updateOProductDept(OProductDept oProductDept)
    {
        return oProductDeptMapper.updateOProductDept(oProductDept);
    }
    /**
     * 新增产品组织中间
     *
     * @param productId 产品id
     * @param deptIds 组织id字符串(,分隔)
     * @return 结果
     */
    @Override
    public int updateOProductDept(String productId,String deptIds)
    {
        oProductDeptMapper.deleteOProductDeptByProductId(productId);
        List<OProductDept> list = new ArrayList<>();
        if (StringUtils.isNotEmpty(deptIds)) {
            String[] ids = Convert.toStrArray(deptIds);
            for (String id : ids) {
                OProductDept productDept = new OProductDept();
                productDept.setDeptId(id);productDept.setProductId(productId);
                list.add(productDept);
            }
            return oProductDeptMapper.insertOProductDeptList(list);
        }
        return 1;
    }

    /**
     * 批量删除产品组织中间
     *
     * @param productIds 需要删除的产品组织中间主键
     * @return 结果
     */
    @Override
    public int deleteOProductDeptByProductIds(String productIds)
    {
        return oProductDeptMapper.deleteOProductDeptByProductIds(Convert.toStrArray(productIds));
    }

    /**
     * 删除产品组织中间信息
     *
     * @param productId 产品组织中间主键
     * @return 结果
     */
    @Override
    public int deleteOProductDeptByProductId(String productId)
    {
        return oProductDeptMapper.deleteOProductDeptByProductId(productId);
    }
}
